package main

import "fmt"

func main() {
	nums := []int{0, 1, 2, 4, 5, 7}
	fmt.Println(summaryRanges(nums))
}

func summaryRanges(nums []int) []string {
	p1, p2 := 0, 0
	rev := []string{}
	for i := 1; i < len(nums); i++ {
		if nums[i]-nums[p2] == 1 {
			p2 = i
			continue
		} else {
			if nums[p1] == nums[p2] {
				rev = append(rev, fmt.Sprintf("%d", nums[p1]))
			} else {
				rev = append(rev, fmt.Sprintf("%d->%d", nums[p1], nums[p2]))
			}

			p1, p2 = i, i
		}
	}

	if p2 == len(nums)-1 {
		if nums[p1] == nums[p2] {
			rev = append(rev, fmt.Sprintf("%d", nums[p1]))
		} else {
			rev = append(rev, fmt.Sprintf("%d->%d", nums[p1], nums[p2]))
		}
	}

	return rev
}
